package java学习.第02章_变量与运算符;

import java.math.BigDecimal;

/**
 * 变量的构成包含的三要素：数据类型  变量名  存储的值
 * 声明格式：    数据类型 变量名 = 变量值
 *
 *
 * java中的变量按照数据类型来分类
 * (1字节 8bit)
 *      基本数据类型（8种）
 *          整型：byte(1字节 -128~127) \ short(2字节) \ int(4字节 约21亿) \ long(8字节)
 *          浮点型： float(4字节) \ double (8字节)
 *          字符型： char(2个字节)
 *          布尔型： boolean
 *
 *       引用数据类型：
 *          类 class
 *          数组 array
 *          接口 interface
 *          枚举 enum
 *          注解 annotation
 *          记录 record
 *
 * 变量都有其作用域   只有在作用域之内才有效
 * 在同一个作用域内   同一个变量名只能生成同一个作用域内
 * 变量赋值时一定要对应其类型，也不要超过其范围
 *
 */
public class B_变量与运算符 {
    public static void main(String[] args) {

        boolean b1 = false;
        boolean b2 = true;//布尔只能 有 false和true
        //常使用在流程控制 如  条件判断和循环结构
        // 默认是 int 一样大小(4字节) 但是不一定 不谈 boolean 内存大小
        //boolean 类型被编译成 int 类型来使用，占 4 个 byte 。
        //boolean 数组被编译成 byte 数组类型，每个 boolean 数组成员占 1 个 byte 。


    }

    private static void 字符类型() {
        char c = 'c';//字符类型 2个字节
        //使用 ''  表示，内部有且只有一个字符
        //使用Unicode 编码，

        char c1 = 455;//使用数字表示  以前是 ASCII 码
        char c2 = '\u545a';//使用    Unicode 编码
        char c3 = '\n';//使用转义字符
        char c4 = '\t';
        //使用转义字符  \n(换行) \t(制表符) \'(单引号) \"(双引号)
        //           \\(反斜线) \b(退格符) \r(回车符)

        System.out.println(c1);
        System.out.println(c2);

        char cc ='a';
        System.out.println(cc+1);
        char cc1 ='在';
        System.out.println(++cc1);//圩
        System.out.println(cc1+1);//22314

    }

    private static void 浮点型() {
        //浮点型精度不高，极其容易吃掉精度
        BigDecimal b = new BigDecimal("14545241515151554154545644155415.54854584895645645564456748654");//无精度损失
        float f = 544.454485f;
        float f1 = 0.1f;
        double d =45544.45454545457878;
        System.out.println(f);
        System.out.println(f1);
        System.out.println(d);
        System.out.println(b);
    }

    private static void 整型() {
        byte b = 1;
        int age = 1041551; //约21亿
        long l = 8489748465L;//long 需要提供后缀 l L
    }
}
